
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="./cesium/Cesium1.98/Widgets/widgets.css">
    <script type="text/javascript" src="./cesium/Cesium1.98/Cesium.js"></script>
    <script src="./latlng.js"></script>
</head>

<body style="margin: 0; overflow: hidden; background: #fff; width: 100%; height: 100%; position: absolute; top: 0">
    <div id="map" style="margin: 0 auto; width: 100%; height: 100%"></div>
    <script type="text/javascript">

        Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3ZjQ5ZGUzNC1jNWYwLTQ1ZTMtYmNjYS05YTY4ZTVmN2I2MDkiLCJpZCI6MTE3MTM4LCJpYXQiOjE2NzY0NDUyODB9.ZaNSBIfc1sGLhQd_xqhiSsc0yr8oS0wt1hAo9gbke6M'
        const viewer = new Cesium.Viewer('map', {});

        var xyz = new Cesium.UrlTemplateImageryProvider({
            "url": '///data.mars3d.cn/tile/img/{z}/{x}/{y}.jpg'
        })
        viewer.imageryLayers.addImageryProvider(xyz)

        let coordinates = Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180, 90.0)
        const gridMaterial = new Cesium.GridMaterialProperty({
        });
        let rectangle = viewer.entities.add({
            rectangle: {
                coordinates: coordinates,
                material: gridMaterial
            }
        });

        viewer.camera.moveEnd.addEventListener(callbackFunc);

        function callbackFunc(event) {
            let bounds = latlng.getViewBounds(viewer)
            if (bounds.northeast.lng == 180 && rectangle.rectangle.coordinates.getValue().east.toFixed(7) == '3.1415927') {
                
            } else {
                rectangle.rectangle.coordinates = Cesium.Rectangle.fromDegrees(bounds.southwest.lng, bounds.southwest.lat, bounds.northeast.lng, bounds.northeast.lat)
            }
        }


    </script>
</body>

</html>